let target = {};
let source = {a: {b: 1}};
Object.assign(target, source);
target.a.b = 3;
console.log(source);


/*
使用 object.assign 方法有几点需要注意：

它不会拷贝对象的继承属性；

它不会拷贝对象的不可枚举的属性；

可以拷贝 Symbol 类型的属性。

可以简单理解为：Object.assign 循环遍历原对象的属性，通过复制的方式将其赋值给目标对象的相应属性
 */


//下面的代码请粘贴到浏览器的控制台中
let obj1 = { a:{ b:1 }, sym:Symbol(1)};

Object.defineProperty(obj1, 'innumerable' ,{
    value:'不可枚举属性',
    enumerable:false
});

let obj2 = {};

Object.assign(obj2,obj1)

obj1.a.b = 2;

console.log('obj1',obj1);
console.log('obj2',obj2);
